/*
 * @Author: QinJiu
 * @Date: 2021-12-30 14:40:06
 * @LastEditors: Qinjiu
 * @LastEditTime: 2022-07-20 15:13:58
 * @Description: axios请求实例
 */
import axios from "axios";

const instance = axios.create({
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 1000000, // 超时设置100s
  withCredentials: true, // 跨域请求时是否需要使用凭证
  method: "GET",
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    console.log(`request start: ${config.method} -> ${config.url} `);
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    console.log(
      `request end: ${response.config.method} -> ${response.config.url} -> ${response.status} `,
      response.data
    );
    const result = response.data;
    return result;
  },
  (error) => {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default instance;
